home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mission 3
/
Mission 3.zip
/
Mission 3.iso
/
divers
/
bubbles
/
auto
/
xssinst.txt
< prev
Wrap
Text File
|
1998-05-03
|
5KB
|
99 lines
XSSINST.PRG V1.2 - Copyright (c) 1997-98 by Ulli Gruszka
p Dieses Programm ist ein Bestandteil des BUBBLES-Archives! q
p Gesonderte Verwendung nur mit schriftlicher Genehmigung des Autors! q
===========================================================================
XSSINST.PRG installiert eine Schnittstelle zwischen Bildschirmschonern und
Programmen, die unter Nichtbeachtung der Fenster-Rechtecklisten auf den
Bildschirm ausgeben müssen (Zeit/Datum-Anzeige, Speicher-Info, Hilfe-Texte,
Objekt-Info etc.).
Der Bildschirmschoner BUBBLES benutzt die Schnittstelle zusätzlich zur
Kommunikation mit seinen Modulen. Ohne diese Schnittstelle ist das Modul-
Schonen nicht möglich.
Zur Installation der Schnittstelle muß XSSINST.PRG im AUTO-Ordner gestartet
werden. Bitte stellen Sie zunächst sicher, daß die Schnittstelle nicht
bereits von einem anderen Tool in einer Version kleiner als 1.01 installiert
wurde.
Wird XSSINST.PRG manuell erneut gestartet, so führt es einen Schnittstellen-
Reset durch.
===========================================================================
Hinweise für Programmierer:
===========================
XSSINST installiert die XSSI-Schnittstelle in der Version 0x101. Zunächst
wird geprüft, ob die Schnittstelle bereits vorhanden ist. Ist dies der Fall
und liegt die Schnittstelle in einer Version >= 1.01 vor, so terminiert
XSSINST.PRG mit einem entsprechenden Hinweis.
Ist die Schnittstelle in einer Version < 1.01 vorhanden, so wird die
Installation mit einer Fehlermeldung abgebrochen.
Existiert noch kein Cookie-Jar, so wird dieser erstmals mit Platz für
insgesamt 16 Cookies angelegt.
Ist im Cookie-Jar kein Platz mehr für einen weiteren Cookie, so wird
globaler Speicher für den bestehenden Jar und 16 weitere Cookies reserviert,
der Jar dorthin kopiert und _p_cookies umgesetzt.
Nun wird der XSSI-Cookie angelegt, dessen Wert ein Zeiger auf die folgende
Struktur ist:
typedef struct {
LONG id; /* Analog zum Vorgehen beim XBRA-Verfahren
die ID des Bildschirmschoners -> BBLS */
WORD version; /* Version des XSSI-Protokolls -> 0x101 */
WORD save_stat; /* Mitteilung, ob gerade geschont wird. 0=nein */
WORD prg_stat; /* Status des Programms:
0= normal schonen, 1= niemals schonen,
-1= sofort schonen. */
LONG vec_stat; /* Bitfeld, in dem der Status der einzelnen
überwachten Vektoren eingetragen ist.
Ein gesetztes Bit bedeutet, Vektor aktiv,
ein nicht gesetztes Bit, Vektor inaktiv. */
} INFOXSSI;
Die Belegung von vec_stat:
Bit-Nr. Vektor
======= ======
0 Tastatur
1 Maus
2 Joystick (*)
3 Midi (*)
4 Modem-1 (*)
5 Modem-2 (SCC B) (*)
6 Serial-1 (*)
7 Serial-2 <-> LAN-Port (SCC A) (*)
8-14 sonstige Vektoren (*)
15 Fensterstapel
(*) Bits werden von BUBBLES ignoriert
Die Bits 0, 1 und 15 werden von BUBBLES nur während des Schonens
ausgewertet. Module haben also die Möglichkeit, die ansonsten nicht
konfigurierbaren Weck-Ereignisse (Tastatur, Maus und Änderungen am
Fenster-Stapel) temporär zu unterdrücken. Somit sind auch interaktive
Module denkbar, die Benutzereingaben erwarten und auswerten.
Unterstützung der Schnittstelle:
================================
Jedes Programm, das nicht über die Fenster-Rechtecklisten auf den
Bildschirm ausgibt, sollte nach dem Cookie suchen. Ist der Cookie
vorhanden, so muß vor der Ausgabe in save_stat nachsehen werden, ob der
Bildschirm gerade geschont wird (<>0). Ist dies der Fall, darf so lange
keine Ausgabe stattfinden, bis save_stat wieder den Wert 0 enthält.
Applikationen können Bildschirmschoner, die das Protokoll kennen, zum
sofortigen Schonen auffordern, indem sie prg_stat den Wert -1 zuweisen.
Ein denkbarer Anwendungsfall sind Druckausgaben und längere Such- oder
Sortieroperationen, deren Ablauf nicht am Bildschirm verfolgt werden
muß. Setzt die Applikation prg_stat wieder auf 0 (darf auf keinen Fall
vergessen werden!), so beendet der Schoner seine Aktivität.
Im Zweifelsfall kann eine Schnittstellen-Reset durchgeführt werden, indem
XSSINST.PRG manuell gestartet wird.